1. Field of the Invention
The present invention relates to a system and a method of operating the system that responds to channel change requests and, more particularly, to a system and a method of responding to channel change requests that does not cause macro-blocking.
2. Description of the Related Art
A set top box is a device that provides a large number of television channel selections to a user. The set top box, which can be connected in parallel with other set top boxes, is connected to a router via a modem, such as an ADSL modem. The router receives a large number of television channels, and routes a specific television channel to the set top box in response to the selections made by the user.
FIG. 1 shows a block diagram that illustrates a prior-art communications network 100. As shown in FIG. 1, network 100 includes a router 110, such as the Telliant 5000 Central Office System manufactured by Advanced Fiber Communications. Router 110 has a channel table 112 that lists a series of television channels (Channel 1-Channel n) that are provided by the router. In addition, channel table 112 maintains a subscriber list for each of the television channels.
As further shown in FIG. 1, network 100 includes an ADSL modem 114 that is connected to router 110. ADSL modem 114, which is located at a customer premise (CP), has an input port that receives telephonic signals and data packets from, and transmits telephonic signals and data packets to, router 110. Further, modem 114 has a plain old telephone service (POTS) port connected to a residential telephone (not shown), and a data port.
As further shown in FIG. 1, network 100 also includes a first set top box STBA that is connected to the data port, a second set top box STBB that is connected to the data port, and a personal computer PC that is connected to the data port. Set top boxes STBA and STBB (and modem 114) form a group (modem 114 provides the physical interface). Although not shown, other groups of set top boxes are typically connected to router 110 via corresponding modems. In addition, network 100 includes two televisions TV1 and TV2 that are connected to the set top boxes STBA and STBB, respectively.
ADSL modem 114 is configured to deliver a first television channel to set top box STBA, and a second different television channel to set top box STBB. Each television channel requires a bandwidth of approximately 3.6 Mbps. Thus, 7.2 Mbps of bandwidth are required to support the two television channels. In the FIG. 1 example, modem 114 is also configured to provide approximately 0.8 Mbps of bandwidth for PC data communications. As a result, modem 114 has a maximum data rate of approximately 8 Mbps.
In operation, when set top box STBA is turned on, set top box STBA is subscribed to receive a selected television channel which, when television TV1 is also turned on, is displayed on the television screen. A user changes the channel received by set top box STBA and displayed by television TV1 by entering commands, usually via an infra-red remote, into set top box STBA.
FIG. 2 shows a block diagram that illustrates a prior art state machine 200. State machine 200 implements the internet group management protocol—version two (IGMPv2), and can be utilized in a router, such as router 110, to route multicast data that represents television channels to the set top boxes.
As shown in FIG. 2, state machine 200 includes a No Members Present module 210, a Members Present module 212, and a Checking Membership module 214. (State machine 200 also includes a Version 1 Members Present module that provides backward compatibility and is not further discussed.)
In operation, when all of the set top boxes connected to the router are turned off, No Members Present module 210 of state machine 200 waits to detect a membership report. In addition, table 112 is empty. When a first set top box, such as box STBA, turns on, the box automatically subscribes to a particular television channel, e.g., the channel that was subscribed to when the box was last turned off. In the subscription process, the first set top box outputs an unsolicited version two (V2) membership report to the router that identifies the subscribed-to-television channel.
When state machine 200 receives the unsolicited V2 membership report, state machine 200 passes the report to Members Present module 212 where state machine 200 places the group that includes the first set top box in channel table 112 in the subscriber list of the subscribed-to-channel, and notifies the routing circuitry to transmit the subscribed-to-channel to the first set top box.
Thus, when the first set top box is a part of a first group G1 of a series of groups G1-Gn and is also subscribed to channel 1, state machine 200 adds first group G1 to the subscriber list of channel 1 when the unsolicited V2 membership report is received. FIG. 1 shows an example of group G1 added to table 112 to the subscriber list of channel 1. (In this example, groups G2-Gn are turned off and, thus, are not subscribed to any channel. As a result, groups G2-Gn are not shown in table 112.)
In addition to notifying the routing circuitry, state machine 200 also starts a general query timer that measures a query interval. When the query timer expires, indicating that the query interval has ended, state machine 200 outputs a general query to the groups in the subscription lists of the channels. The general query includes a maximum response time. In addition to outputting the general query, state machine 200 starts a response timer that measures the maximum response time.
In response to the general query, the groups output V2 membership reports. In the present example, the first set top box responds to a general query by outputting a V2 membership report representing first group G1 that indicates that the first set top box remains connected to the subscribed-to-channel.
After state machine 200 receives the V2 membership report from the first set top box, state machine 200 again starts the general query timer to measure the next query interval. On the other hand, if the first set top box has been turned off, state machine 200 receives no response and the response timer expires. In this case, state machine 200 passes the group and channel to No Members Present module 210 where state machine 200 removes group G1 (that includes the first set top box) from table 112 from the subscription list of the subscribed-to-channel.
When the first set top box remains on and a second set top box of the same group turns on, the second box automatically subscribes to a particular television channel. As above, in the subscription process, the second set top box outputs an unsolicited version two (V2) membership report to the router that identifies the subscribed-to-television channel.
When state machine 200 receives the unsolicited V2 membership report from the second set top box, state machine 200 passes the report to Members Present module 212 where state machine 200 places group G1 in channel table 112 in the subscriber list of the subscribed-to-channel, and notifies the routing circuitry to transmit the subscribed-to-channel to the second set top box.
Thus, when the second set top box is subscribed to channel n, state machine 200 adds group G1 to channel table 112 to the subscriber list of channel n. In addition, as above, state machine 200 measures a query interval for the second set top box. FIG. 1 shows an example of group G1 added to channel table 112 in the subscriber list of channel n.
When a user of the first set top box desires to change channels, such as from channel 1 to channel 2, the first set top box outputs a leave message to the router to indicate that the first set top box is leaving channel 1, followed by a V2 membership report that indicates that the first set top box is subscribed to channel 2.
However, before the router can stop sending channel 1, the router must make sure that another set top box in the same group is not receiving the same channel. Thus, when the router detects the leave message, state machine 200 passes the leave report to Checking Membership module 214 where state machine 200 outputs a group specific query to the members (the first and second set top boxes) of first group G1 to determine if any member (set top box) of first group G1 is subscribed to channel 1. In addition, state machine 200 also sets a group specific query timer and a retransmit timer.
The retransmit timer can be an integer multiple of the group specific timer. For example, the retransmit timer can have a value of two, while the group specific timer can have a value of four. When the retransmit timer expires, state machine 200 retransmits the group specific query and resets the retransmit timer. Thus, in the above example, the group specific query is transmitted twice before the group specific timer expires. The retransmission is a redundancy feature that minimizes the likelihood that lost or damaged packets will prevent the group specific query from being received.
In the present case, since none of the members of first group G1 are subscribed to the first channel (the first set top box is subscribed to the second channel, and the second set top box is subscribed to the nth channel), state machine 200 receives no response to the group specific query, and the group specific query timer expires.
(When both the first and second set top boxes are subscribed to the same television channel, e.g., channel 1, and the first set top box leaves the channel for another channel, first group G1 responds to the group specific query, thereby indicating that the second set top box remains subscribed to the channel. In this case, the router continues to send channel 1 to the second set top box.)
When the group specific timer expires, state machine 200 passes the expiration to No Members module 210 where state machine 200 notifies the routing circuitry to stop sending channel 1 to first group G1 (that includes the first set top box). In addition, state machine 200 also removes first group G1 from the subscription list of channel 1 in table 112, and clears the retransmit timer.
When state machine 200 receives the V2 membership report that identifies channel 2 as the subscribed-to-channel, state machine 200 passes the report to Members Present module 212 where state machine 200 places the group that includes the first set top box in the subscriber list of the subscribed-to-channel, and notifies the routing circuitry to transmit the subscribed-to-channel to the first set top box. Thus, when the first set top box is subscribed to channel 2, state machine 200 adds first group G1, which includes the first set top box, to the subscriber list of channel 2.
One problem with the above method is that when both the first and second set top boxes are turned on and receiving different television channels, and one set top box requests a channel change, the router attempts to send three television channels of data to the ADSL modem for a short period of time. This is because state machine 200 notifies the routing circuitry to start sending channel 2 to the first set top box of first group G1 before state machine 200 notifies routing to stop sending channel 1 to first group G1. Thus, the short period of time begins when the router sends out the new channel (channel 2) to the ADSL modem, and ends when the group specific query expires.
For example, assume that the first set top box is receiving a first channel and a second set top box is receiving a third channel. Further assume that the first set top box requests to change from the first channel to the second channel. In this case, the router attempts to send the first, second, and third channels until the group specific query timer expires, at which time the router can stop sending the first channel.
When the router attempts to send three channels of data, the ADSL link becomes saturated because the router is attempting to send 10.8 Mbps of data (3 channels*3.6 Mbps/channel) over an 8.0 Mbps link. This is undesirable because the channel change can cause macro-blocking on the second set top box. In addition, the channel change also prevents a personal computer from sending and receiving data during this period of time.
Thus, there is a need for a router and a method of operating the router that responds to channel change requests without causing macro-blocking.